<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <button>1</button>
    <button>2</button>
    <button>3</button>

    <script>

        // let  const 
        //   没有预编译的 ， 变量必须先声明后使用
        //   变量在同一个作用域中不能重复的声明
        //   块级作用域 --- 局部变量

        //  let 声明的变量可以改变
        //  const 声明的变量不能被改变  
        //      const声明变量的时候必须立即赋值 
        //      const 在存引用数据类型的时候，存的是地址，值可以发生改变，只要地址不变即可  
        //            arr.push()  不会报错，因为地址没变  但是 arr = [] 重新赋值以后，地址发生了改变，报错


        // 如何选择变量的声明方式
        //   优先选择const   变量不会发生改变   多用于引用数据类型(赋值式函数 ， 数组 ， 对象)
        //   再使用let   变量的值可以发生改变  
        //   最后才选择var 






        // console.log(a);   // 报错

        // let a = 2 ;

        // // let a = 3 ;  // 报错

        // function foo() {
        //     // let a = 3 ;
        //     console.log(a);
        // }

        // foo() ;


        // {
        //     let b = 2 ;
        //     console.log(b);
        // }
        // console.log(b);  // 报错


        for(let i = 0 ; i < 10 ; i++) {
            console.log(i);
        }

        // console.log(i);   // 报错


        // {
        //     let i = 0 ; 
        //     i < 10 ;
        //     console.log(i);
        // }

        // {
        //     let i = 1 ;
        //     i < 10 ; 
        //     console.log(i);
        // }



        // for(let i = 0 ; i < 10 ; i++) {
        //     setTimeout(function(){
        //         console.log(i);    0-9
        //     } , 0)
        // }


        // {
        //     let i = 0 ; 
        //     setTimeout(function(){
        //         console.log(i);
        //     } , 0)
        // }

        // {
        //     let i = 1 ; 
        //     setTimeout(function(){
        //         console.log(i);
        //     } , 0)
        // }


        let oBtns = document.querySelectorAll('button') ;

        // for(let i = 0 ; i < oBtns.length ; i++) {
        //     oBtns[i].onclick = function() {
        //         // console.log(oBtns[i]);  // 报错
        //         console.log(i);
        //     }
        // }


        // {
        //     let i = 0 ; 
        //     oBtns[i].onclick = function() {
        //         console.log(i);
        //     }
        // }

        // {
        //     let i = 1 ; 
        //     oBtns[i].onclick = function() {
        //         console.log(i);
        //     }
        // }

        let c = 3 ;
        c = 4 ;
        console.log(c);


    </script>
    
</body>
</html>